Bevezets a Visual Basic-be (VB 3.0-ra alapozva)
================================================
Els rsz (javtott I.)

Bevezets
-=-=-=-=-

dvzlk mindenkit, aki meg kvn ismerkedni ezzel a mra igen npszerv vlt programozsi nyelvvel. Tudom, hogy a VB 3.0 mr nagyon rgi, de mg mindig sok embert lttam, aki ezzel dolgozik.

Taln mr volt dolgod ms Basic nyelvekkel, vagy brmilyen ms nyelvvel. Ha mg nem, akkor nem ezzel a dokumentummal kne kezdened. Elkpzelhet, hogy kszl majd egy teljesen kezdk (akik mg egyltaln nem foglalkoztak programozssal) szmra is lers, de egyelre mg ennek a sorozatnak a sorsa is ktsges.

A legnagyobb klnbsg a VB s pl. a QBASIC kztt az, hogy mg az utbbi (nagyjbl) elejtl vgig hajtja vgre a programot, a VB-ben n. "event"-ek hatrozzk meg a program futst. Az event magyarul eset vagy esemny, beletartozhat pl.:
 - A bal vagy a jobb egrgomb megnyomsa
 - Kattints egy gombra
 - Egy billenty megnyomsa
stb.

Az eventek miatt nincs is szksg a programsorok szmozsra. Lehetsg azrt van r, de itt a sorszmoknak ms jelentsge van.


Az els VB programod
-=-=-=-=-=-=-=-=-=-=

Mi is lehetne ms az els VB programod, mint ami kirja a kvetkez szveget: "Hello world!". Mindjrt meg is rjuk, de eltte egy kicsit megismerkednk a programozsi fellettel (1. bra). Ha jabb VB-d van, akkor se bnkdj, majd a ksbbiekben idekerl a fejlettebb VB-k kezelfellete is. A 4.0 nem sokban klnbzik a 3.0 arculattl, de 5.0-tl felfele mr mshogy nz ki. De mivel ez a javtott kiads (vgre elkszlt), a megfelel helyeken lerom a klnbsgeket, hasonlsgokat...

Ha 5.0 vagy annl fejlettebb fejlesztrendszered van, akkor elszr ki kell vlasztani, hogy milyen tpus programot akarsz kszteni. 

Legfell a "Microsoft Visual Basic (design)" cimkj ablakban van a program menje, eszkztra. Itt tudod elmenteni, betlteni a programjaidat, az eszkztron lv Play s Stop gombbal elindtani/lelltani a programot, debuggolni, stb. 5.0-tl felfel az az eltrs van, hogy az egsz fejlesztrendszer nem annyira "szttredezett", hanem egy egysges ablak. Alatta, a bal oldalon van azoknak az elemeknek a listja, amibl felptheted a programod. Ezek sorrendben:
 - nyl: nem elem, ezzel mretezhed, helyezheted t a mr az ablakodon lv elemeket
 - kp (Picture Box): rtelemszeren ide egy kpet tehetsz.
 - cimke (Label):  tulajdonkppen egy szveg, amit a felhasznl nem tud vlvltoztani. Ezzel pl.    elmagyarzhatod a felhasznlnak, hogy mire val az adott elem. (A flrertsek elkerlse       vgett: te a FEJLESZT vagy, s aki a kzbe veszi a programod, az a FELHASZNL).
 - szvegdoboz (Textbox): ide rhat a felhasznl.
 - keret (Frame): egy keret, amibe elemeket helyezhetsz. Fleg csoportostsra hasznljk.
 - gomb (Command Button): a legalapvetbb elem, egy nyomgomb.
 - Check Box (ennek mi a magyar neve?): egy kis doboz, amit beikszelhetsz. Ilyen pldul a          Windows-ban a "Jelsz mentse"  (csatlakozs egy telefonos
   hlzathoz ablak).
 - Option Button (magyar nv?): mint egy feleletvlaszts teszt. Tbb van belle, s csak egyet     lehet vlasztani.
 - Combo Box (m.n.?): "lehzhat" lista
 - lista (List Box): az elbbi egyszerstett vltozata, nem lehet "lehzni".
 - Fggleges s vzszintes nyilak (Horizontal/Vertical Scroll Bar)
 - Idzt (Timer): ha letelik a megadott id, aktivizldik
 - Meghajtlista (Drive List Box): a vlaszthat meghajtk listja
 - Knyvtrlista (Directory List Box)
 - Fjllista (File List Box)
 - Alak (Shape): ngyzet, tglalap (ezek lehetnek kerektett szlek), ellipszis, kr
 - Vonal (Line)
 - kp (Image): ide is kpet tehetsz, a Picture Box-hoz hasonl, klnbsgekrl ksbb
 - Data (m.n.?): adatbzisok kezelshez hasznos.
(mg lthatsz hrom msikat is, azokrl majd ksbb esik sz. 5.0-tl felfele csak kett msikat.)

Egybknt ezt az ablakot hvjk "Control Tool Box"-nak. Ha ebbl a felsorolsbl valami nem vilgos (amin nem lepdnk meg), akkor nzd meg 2. abrt, ott biztos megrted, s felismered az egyes elemeket.  A Control Tool Box-ot a ksbbiekben CTB-nek rvidtem.

Szval a CTB ablaktl jobbra tallhatod azt az ablakot (form-ot), amire teheted az elemeket. Ez igen egyszeren megy: vlaszd ki a CTB-bl azt az elemet, amit az ablakra akarsz (most legyen ez a Command Button), menj oda az egrrel, ahova tenni akarod, bal gombot lenyomva tartva pedig "rajzold meg".

CTB ablaktl balra van a Properties Window, ez a lelke mindennek. Itt llthatod t az aktulis elem tulajdonsgait, kinzett, stb. 5.0-tl felfele a Properties ablak kb. ugyanott helyezkedik el, de felismered, mert r van rva :-)

Legalul a Project Window van, itt azt tudod nyomon kvetni, hogy milyen rszegysgekbl ll a programod (project). Ez legtbbszr a kvetkezkbl szokott llni:
 - form (ablak)
 - module (globlis rutinok, majd ksbb foglalkozunk vele)
 - custom control (egyb elemek, ksbb)
5.0-tl felfel ez a bal fels sarokban tallhat...

Trjnk akkor vissza a programunkhoz. Teht most mr van egy ablakod egy gombbal. Meg kell mondani a VB-nek, hogy ha megnyomjuk ezt a gombot, akkor rja ki: Hello, world!

Most jnnek azok a bizonyos eventek, azaz esemnyek. Minden elemet (gy a gombot, de mg magt az ablakot is) esemnyek irnytanak. Ha trtnik valami a gombbal (pl. megnyomjuk), akkor vgrehajtdik valami. s hogy mi, azt neknk kell megadni. Termszetesen azt is meg lehet adni, hogyha "megnyomom a gombot, akkor ne trtnjen semmi", ez mr most is ksz van. Ha akarod, kiprblhatod, indtsd el a programot. (Vagy Run menbl a Start, vagy a Play gomb, vagy az F5 lenyomsval.) Csinlhatsz akrmit a gombbal, nem fog trtnni semmi. Nagyon j, lltsd le a programot. (Zrd be az ablakot, vagy Run menbl Stop, vagy Stop gomb.) Ismt szerkeszt mdban vagyunk, kattints dupln a gombra. Ekkor elugrik majd egy ablak, ide lehet berni a kdot (3. bra). Nzzk meg egy kicsit jobban! Az ablak fels rszben tallsz kt Combo Box-ot (Object s Proc felirat van elttk, 5.0-tl nincs felirat). Az elsben az aktulis elem nevt ltod, s ha lehzod, akkor az sszes tbbi elem neve trul eld. A msikban az elemhez tartoz vezrleljrsok listjt tallhatod meg. Ezek az eljrsok indulnak el, ha valami klnleges trtnik az adott elemmel. Pl. most Command1 az elem, s Click az eljrs. Teht amit most ide rsz, az akkor hajtdik vgre, ha valaki rkattint a Command1 nev gombra. Az elemek nevt termszetesen meg lehet vltoztatni, mert igen nehz megjegyezni hogy mi micsoda, ha mr Command26-nl tartasz. A kdot a Sub..End Sub sorok kz kell mindig rni. Akkor a kd most legyen a kvetkez:

print "Hello, world!"

Ez ksz is van. Zrd be a kdablakot, s indtsd el a programot. Ha megnyomod a gombot, akkor kirja, hogy Hello, world!


Az els VB programod tovbbfejlesztse
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Elg furcsk lennnek a programok, ha ilyen "Command1" meg "Form1" feliratok dszelegnnek rajtuk, mert senki nem tudn, hogy mire valk. Ezen vltoztatni kell! Kattints egyszer az ablakra (magra az ablakra), s keresd el a Properties Window-t. Ahogy ezt mr tudjuk, itt vannak az aktulis elem (most az ablak) tulajdonsgai. Ilyenek, hogy Autoredraw, Backcolor, Borderstyle, Caption... s itt meg is llhatok, mert a Caption-re van neknk szksgnk. rd be a Caption mell (most az van mellette, hogy Form1), hogy "Az els VB programom". Kattins egyszer a gombra, majd trj vissza a Properties ablakhoz. Most a Caption mellett Command1 van, legyen helyette pl. Hello, world! Lthatod, hogy megvltozott a gomb s az ablak FELIRATA. 

NAGYON FONTOS, HOGY CSAK A FELIRAT VLTOZOTT MEG, A NV NEM, TOVBBRA IS COMMAND1-KNT KELL HIVATKOZNI A GOMBRA, S FORM1-KNT AZ ABLAKRA!!! 

Itt megint van egy kis eltrs. 5.0-nl elre hoztk a Name (nv) tulajdonsgot (ami alapjban vve igen j dnts volt). Ezenkvl kt "flet" is tallhatsz a Properties ablaknl, ezekkel azt tudod lltani, hogy a tulajdonsgok bc, vagy logikai sorrendbe kerljenek.
Mg egy kicsit bonyoltjuk a dolgot. Kne a felhasznlnak egy t, hogy gyorsan kilpjen a programbl. Erre lenne j egy Kilps nev gomb, de mivel mi nem szeretjk az egyszer megoldsokat, gy lehet majd kilpni, hogy dupln rkattintasz az ablakra. Hvjuk el a kdablakot: kattints dupln a Hello, world! gombra. Nzzk meg az Object Combo Box-ot! Ha rkattintasz a kis nylra, akkor hrom elem lesz benne: (general), Command1, Form. Mivel neknk az ablakra lesz szksgnk, vlaszd a Form-ot. Lthatod is a vltozst: eltnt az elbb bert egy sor, s Sub Form_Load () lett az els sor a Sub Command1_Click () helyett. A Load azt jelenti, hogy tlts, betlts, teht amit ide bersz, az akkor fog vgrehajtdni, ha betltdik az ablak. De ez neknk nem j, mivel mi azt szeretnnk, hogy duplakattintsra rjen vget a program. Vlaszd a Proc Combo Box-bl a DblClick eljrst (felfele kell scrollozni hogy meglsd). A DblClick a Doubleclick rvidtse, azt hiszem nem szorul magyarzatra. Az els sor Sub Form_DblClick ()-re vltozott. Nincs ms htra, mint megadni, hogy rjen vget a program! rd be az End Sub el, hogy

end

Kdablak bezr, program indt. Egyre jobb lesz, nem?


Fontosabb tulajdonsgok, esemnyek
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Elrkeztnk az els rsz vgre, amelyben remlhetleg megrtetted a VB mkdsnek alapelvt. Szpen leraksz nhny elemet az ablakra, a Properties-nl megadod a tulajdonsgaikat, dupln kattintasz az elemre, berod a kdot. A msodik rszben jobban megismerkednk az elemekkel. Most pedig megnzheted az egyes elemek fontosabb tulajdonsgainak a listjt.

Minden elemnl elfordul:
/\/\/\/\/\/\/\/\/\/\/\/\/

Name: ezzel adhatod meg a nevt az elemnek. A nvvel lehet hivatkozni az elemre. Pldul ha a fenti programban a gomb nevt trtuk volna HW-re, akkor a Sub Command1_Click () helyett Sub HW_Click () jelent volna meg a kdablakban.
Top: az elem Y pozicija
Left: az elem X pozicija
Height: az elem magassga
Width: az elem szlessge
Backcolor: httrszn
Forecolor: eltrszn (Label-nl pl. a szveg szne)
Enabled: tudja-e a felhasznl hasznlni (pl. ha a Command Button-nl False, akkor szrke lesz, s nem lehet rkattintani)

Form:
/\/\/

BorderStyle: a keret stlusa (tmretezhetsg)
ControlBox: az X (bezrs) gombot lehet-e hasznlni
KeyPreview: gombok letsnek van-e hatsa
MaxButton: teljes mret gombot lehet-e hasznlni
MinButton: ikonmret (tlca) gombot lehet-e haszlni

5.0-tl vannak ilyenek is:

ShowInTaskBar: benne legyen-e a program a Task Bar-ban
StartUpPosition: hol legyen az ablak (kzpen a leglogikusabb)

Picture Box:
/\/\/\/\/\/\

AutoSize: akkor legyen-e az elem, mint a benne lv kp
BorderStyle: legyen-e keret
Picture: a benne lv kp. Alapban (none), de kattins dupln a (none)-ra, s akkor megadhatod hogy melyik kp legyen benne.

Label:
/\/\/\

AutoSize: akkor legyen-e az elem, mint a benne lv szveg
FontBold: a benne lv szveg flkvr
FontItalic: a benne lv szveg dlt
FontName: a benne lv szveg bettpusa
FontSize: a benne lv szveg mrete

5.0-tl felfel egy egysges Font tulajdonsg van, ahol egyszerre llthatod a fentieket.

Text Box:
/\/\/\/\/

Text: az alapban benne lv szveg

Frame, Command Button, Check Box, Option Button:
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

Caption: az elem felirata

Combo Box:
/\/\/\/\/\

Style: a Combo Box kinzete, mkdsi elve (stlusa)
Text: az alapban benne lv szveg

List Box:
/\/\/\/\/

Nincs olyan nagyon klnleges.

Horizontal/Vertical Scroll Bar:
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/

Min: a legkisebb rtek, amit a Scroll Bar felvehet
Max: a legnagyobb rtk, amit a Scroll Bar felvehet
SmallChange: ennyi egysget lp egyszerre

(Teht ha a Min 0, a Max 10 s a SmallChange 2, akkor hat lls lesz: 0,2,4,6,8,10)

Timer:
/\/\/\

Interval: az az id, ami utn aktivizldik (1/1000 msodpercben)

Dir List Box:
/\/\/\/\/\/\/

Nincs olyan nagyon klnleges.

File List Box:
/\/\/\/\/\/\/\

Pattern: melyik fjlokat mutatja (alapban *.*)

Shape:
/\/\/\

Shape: milyen formja legyen

Image:
/\/\/\

Picture: mint Picture Box-nl
Stretch: kp nyjtsa

A fontosabb esemnyek listja:
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

Click: egyszeri rkattints
DblClick: duplakattints
Load: csak Form-nl, ablak betltsekor
Resize: csak Form-nl, ablak tmretezsekor
KeyPress: figyelje-e a billentyket


A msodik rszben egy kicsit jobban megismerkednk ezekkel a tulajdonsgokkal, illetve az egyes elemek hasznlatval.






Ezt azt iromnyt Kvi Blint ksztette. Fellem azt csinlsz vele, amit akarsz, trhatod, de azrt emlts meg engem is, j? Frisstseket, folytatsokat mindig tallhatsz a Visual Basic znban: http://vbzona.fw.hu/